package club.zhilin.guli.service.ucenter.service;

import club.zhilin.guli.common.base.result.CommonResult;
import club.zhilin.guli.service.base.dto.MemberDTO;
import club.zhilin.guli.service.ucenter.domain.Member;
import club.zhilin.guli.service.ucenter.domain.vo.LoginVO;
import club.zhilin.guli.service.ucenter.domain.vo.RegisterVO;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 会员表 服务类
 * </p>
 *
 * @author zhilin
 * @since 2022-02-24 17:34:48
 */
public interface IMemberService extends IService<Member> {

    /**
     * 注册
     *
     * @param registerVO 注册值对象
     * @return commonResult
     */
    CommonResult<String> register(RegisterVO registerVO);

    /**
     * 登录
     *
     * @param loginVO 登录值对象
     * @return commonResult
     */
    CommonResult<String> login(LoginVO loginVO);

    /**
     * 通过数据库openId字段查询member对象
     *
     * @param openId openId
     * @return member
     */
    Member getByOpenId(String openId);

    /**
     * 通过用户id查询用户实体类
     *
     * @param memberId 用户id
     * @return commonResult
     */
    CommonResult<MemberDTO> selectMember(String memberId);

    /**
     * 通过指定日期查询注册人数
     *
     * @param date 日期
     * @return integer
     */
    Integer selectRegisterCount(String date);

    /**
     * 通过指定日期查询当天登录人数
     *
     * @param date 日期
     * @return integer
     */
    Integer selectLoginCount(String date);
}
